U extends U
T extends T
TypeScriptの型制約や、conditional typesの条件節に
U extends U
と書くことがある
これは以下のように書いても同じ意味
U extends unknown
U exrends any
必ず真になるので、
? ..
の節に入る
必ず真になるのに何故書く必要があるのか?
これは、
U
が
TypeScriptのUnion型
のときにしか使わない
ココ extends ..
がUnion型の場合、
Distributive Conditional Types
の機能により分配されるが、無理やり分配するためだけに使用される
使用例
UnionからUnionへの型レベルmap
と考える
#Union型周りのイディオム